const dayjs = require("dayjs");
const OpenAI = require("openai");
const db = require('../config/database');

const openai = new OpenAI({
    baseURL: 'https://api.deepseek.com',
    apiKey: 'sk-ca126e7a875846e0b0f2fe0198049d8e'
});



module.exports = {
    async business_opportunity(content,id) {
        const model1 = `
                        # 角色
                        你是医美洞察精灵，是医美行业需求挖掘的资深专家。能够精准剖析客户话术，深度挖掘其中的潜在需求。

                        ## 技能
                        ### 技能 1: 分析客户话术
                        仔细研读客户提供的话术内容，不放过任何细节。

                        ### 技能 2: 挖掘潜在需求
                        基于对客户话术的分析，敏锐捕捉其中隐藏的潜在需求。

                        ## 输出示例
                        - 需求总结:

                        ## 限制
                        - 仅围绕医美行业需求挖掘相关内容进行分析，拒绝回答与医美行业需求挖掘无关的话题。
                        - 所输出的内容必须逻辑清晰、简洁明了，符合给定的技能要求框架。 
                        - 输出内容限制在60字以内

                        # 客户话术
                        ${content}
                    `

        const start = Date.now();
        const completion = await openai.chat.completions.create({
            messages: [{ role: "system", content: model1 }],
            model: "deepseek-chat",
        });
        const end = Date.now();


        const summary = completion.choices[0].message.content.replace('需求总结：', '');

        return summary;

        // 记录需求总结
        /* 
         summary_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '总结ID（主键）',
          oppo_id INT NOT NULL COMMENT '关联商机ID',
          demand_summary TEXT COMMENT 'AI生成的需求总结',
          generate_time DATETIME COMMENT '总结生成时间',
        */
        // db.execute("INSERT INTO opportunity_summary  (oppo_id, demand_summary, generate_time) VALUES (?, ?, ?)", [id, summary, end - start]);

    },

    async business_opportunity_record(content,id) {
        const model2 = `
        # 角色
        你是商机跟进精灵，作为销售人员贴心的小助理，要凭借每次的跟进结果，精准制定出下次跟进计划，以此全力帮助销售人员提高赢单率。

        ## 技能
        ### 技能 1: 制定跟进计划
        1. 当销售人员提供某次商机跟进结果后，详细分析该结果中的各类信息。
        2. 根据分析得出的关键要点，结合过往成功跟进案例数据，制定出合理、有效的下次跟进计划。
        3. 回复示例：
            {   "suggestion": "<根据商机跟进结果，制定出合理、有效的跟进建议>"}
        ## 限制
        - 仅围绕商机跟进相关内容进行工作，拒绝处理与商机跟进无关的事务。
        - 输出内容必须按照给定格式呈现，不可随意改变框架结构。
        - 制定的跟进计划需切实可行，符合销售实际场景。 

        # 商机跟进结果
        ${content}
        `


        // 计时器
        const start = Date.now();
        const completion = await openai.chat.completions.create({
            messages: [
                { role: "system", content: model2 },
            ],
            model: "deepseek-chat",
        });
        const end = Date.now();
        const summary = completion.choices[0].message.content.replace('{   "suggestion": "<根据商机跟进结果，制定出合理、有效的跟进建议>"}', '');

        /* 
            suggestion_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '建议ID（主键）',
            follow_id INT NOT NULL COMMENT '关联跟进记录ID',
            suggestion TEXT COMMENT 'AI生成的跟进建议',
            generate_time DATETIME COMMENT '建议生成时间',
       */
        // db.execute("INSERT INTO follow_suggestion   (follow_id, suggestion, generate_time) VALUES (?, ?, ?)", [id, summary, end - start]);
        console.log(summary);
        
        return summary;

        // db.execute('INSERT INTO openai_log (content, time) VALUES (?, ?)', [completion.choices[0].message.content, end - start]);
    }
}